package jm.nj.demo11main.demo04;

import jm.nj.demo03mian.demo03.B;

import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/*
* java.io.BufferedOutputStream:字节缓冲输出流
*
* 构造方法:
* ButterOutputStream(outputStream out)创建一个缓冲输出流,以将数据写入指定的底层输出流
*       字节缓冲输出流的构造方法中传入OutputStream字节输出流
 * 	传递的是哪个字节输出流,就给哪个字节输出流增加一个缓冲区,提高字节输出流的写入效率
 * 	可以传入:FileOutputStream
 *
 * 成员方法:继承自outputStream中的方法
 * abstract void write(int b)
 *  void write(byte[] b) 写入字节数组
 * void write(byte[] b, int off, int len) 写入字节数组,off是开始的索引,len写几个
 * void close() 关闭此输出流并释放与此流有关的所有系统资源。
 *
 * 注意void   flush() 刷新此缓冲的输出流。
 *
 * 操作流程:
 * 	1.创建FileOutputStream对象,绑定数据目的地
 * 	2.创建字节缓冲输出流对象,构造方法中传入FileOutputStream,给FileOutputStream增加缓冲区
 *  3.调用字节缓冲输出流对象中写入数据的方法,把数据写入到缓冲区中
 *  4.调用刷新方法,把数据由缓冲区刷新到文件中
 *  5.释放资源(缓冲流)
* */
public class Demo01BufferedOutputStream {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("b.txt");
        BufferedOutputStream bos = new BufferedOutputStream(fos);
        bos.write("sfhasdijfhjksda".getBytes());
        bos.write("返回撒的接口".getBytes());

        bos.flush();
        bos.close();
    }
}
